'use strict';

const Controller = require('egg').Controller;

/**
 * @Controller 首页管理
 */
class HomeController extends Controller {
    /**
     * @Router get /
     */
    async index() {
        const { ctx } = this;
        ctx.body = 'hi, egg';
    }

    /**
     * @Router post /login
     * @Request body LoginRequest 登录请求参数
     */
    async login() {
        // 校验参数
        this.ctx.validate(this.ctx.rule.LoginRequest);
        // 控制去调用哪个业务逻辑
        await this.service.home.login(this.ctx.request.body);
        // 返回响应
        this.ctx.helper.send();
    }

    /**
     * @router post /register
     * @request body RegisterRequest 注册所需参数
     */
    async register() {
        // 校验参数
        this.ctx.validate(this.ctx.rule.RegisterRequest);
        // 调用注册逻辑
        await this.service.home.register(this.ctx.request.body);
        // 返回响应
        this.ctx.helper.send();
    }
}

module.exports = HomeController;
